﻿using System;


namespace BizElements.BusinessLayer
{
    /// <summary>
    /// Object that builds and provides a search engine for a specific search task.
    /// </summary>
    public interface ISearchEngineBuilder
    {
        #region Methods.

        /// <summary>
        /// Creates a search engine for a specific search task.
        /// </summary>
        /// <param name="actorRequestingData">Actor which is requesting data. May be used to restrict data available to the actor.</param>
        /// <returns>Search engine that can access the data-source.</returns>
        ISearchEngine CreateSearchEngine(IActor actorRequestingData);

        #endregion

        #region Properties.

        /// <summary>
        /// Source of field names and descriptions.
        /// </summary>
        ITextSource MessageSource { get; set; }

        #endregion
    }
}